package com.geeksx.trainer.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.geeksx.trainer.entity.Question;
import com.geeksx.trainer.entity.request.PracticeStartRequest;
import com.geeksx.trainer.entity.vo.QuestionVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Question 数据访问层，继承 MyBatis-Plus BaseMapper
 */
@Mapper
public interface QuestionMapper extends BaseMapper<Question> {
    
    /**
    /**
     * 分页查询题目，关联查询分类名称（支持按分类ID列表查询）
     * @param page 分页参数
     * @param type 题目类型
     * @param categoryIds 分类ID列表
     * @return 分页结果
     */
    Page<QuestionVO> selectQuestionPageWithCategoryIds(Page<QuestionVO> page,
                                                      @Param("type") String type,
                                                      @Param("categoryIds") List<Long> categoryIds);

    /**
     * 随机查询指定数量的题目
     * @param request
     * @return 查询结果
     */
    List<QuestionVO> selectRandomQuestions(@Param("request") PracticeStartRequest request);

    /**
     * 查询所有题目
     * @param request
     * @return 查询结果
     */
    List<QuestionVO> selectAllQuestions(@Param("request") PracticeStartRequest request);

    /**
     * 获取推荐题目
     * @return 推荐题目
     */
    QuestionVO getRecommendQuestion(@Param("request") PracticeStartRequest request);
}